pxAddTorque(body%, vx#, vy#, vz#, mode%)

Параметры

body% - физическое тело
vx#, vy#, vz# - вектор силы
mode% - режим

Описание

Прикладывает к телу момент вращения в глобальной системе координат.
Mode - может принимать только целые значения от 0 до 5.
0 - прикладывает просто силу, имеет единицу измерения масса*дистанция/время^2.
1 - прикладывает импульс, имеет единицу измерения масса*дистанция/время.
2 - изменение скорости, имеет единицу измерения дистанция/время.
3 - сглаженный импульс (SMOOTH IMPULSE ), используется в конкретных случаях.
4 - сглаженное изменение скорости (SMOOTH VELOCITY CHANGE), используется в конкретных случаях.
5 - ускорение, имеет единицу измерения дистанция/время^2.
Внимание - момент вращения нельзя прикладывать к статическим (с массой 0) и управляемым телам.

Смотрите так же

Пример

;Пример применения функции
;pxAddTorque

Graphics3D 800, 600, 32, 2
SetBuffer BackBuffer()

;Создаем физический мир, устанавливаем гравитацию.
pxCreateWorld(1) ;У нас будет поверхость
pxSetGravity(0, -10, 0)

camera=CreateCamera()
light=CreateLight()
PositionEntity camera,0,20,-40
RotateEntity camera,30,0,0

plane=CreatePlane() ;Физуализируем поверхость
EntityColor plane,0,100,200
EntityAlpha plane,0.5

mir = CreateMirror () ;Чуть украсим зеркалом

body1 = pxCreateCube( 1, 1, 1, 20)
pxSetPosition(body1,0,3,0)
mesh1 = CreateCube()
EntityColor mesh1,255, 0, 0

body2 = pxCreateCube( 1, 1, 1, 20)
pxSetPosition(body2,0,9,0)
mesh2 = CreateCube()
;Создаем соединение "спица"
pxJCreateCylindrical(body1, body2, 0, 6, 0, 0, 1, 0, -20, 20)
;Создаем пружину
pxCreateSpringAndDamperEffector(body1, body2)

mode% = 0 ;Поиграем с типом силы
Force# = 2000 ; сила с которой будем давить
;Основной цикл программы
While Not KeyDown(1) ;Пока не нажат ESC

    RenderPhysic(60,0)

; ------------ Применяем pxAddTorque
;Применяем силы в зависимости от нажатой клавиши
    If KeyDown(200) pxAddTorque(body1, 0,0,Force, mode)
    If KeyDown(208) pxAddTorque(body1, 0,0,-Force, mode)
    If KeyDown(205) pxAddTorque(body1, Force,0,0, mode)
    If KeyDown(203) pxAddTorque(body1, -Force,0,0, mode)

    If KeyHit(57) Then
        mode = mode+1
        If mode = 6 Then mode = 0
        Select mode
        Case 0
            Force# = 2000
        Case 5
            Force# = 200
        Default
            Force# = 20
        End Select
    EndIf

    pxSetEntity(mesh1,body1)
    pxSetEntity(mesh2,body2)

    RenderWorld
    Text 10,10,"Клавиши управления - прикладывают момент вращения к красному кубику"
    Text 10,20,"Пробел - изменяет тип прикложеной силы"
    Text 10,30,"Текущий тип силы "+ mode
    Text 10,40,"Приложено силы "+ Force

    Flip
    Wend
End

К содержанию

Нажмите здесь чтобы увидеть последнюю версию этой странички в режиме online.